<?php
/**
 *
 * 本接口用于将client_id与用户绑定(bindUid)，并加入特定的群组(joinGroup)
 * bindUid后就可以通过接口Gateway::sendToUid向uid发送数据(见send_message.php)
 * joinGroup后就可以收到对应群组的消息。用接口Gateway::sendToGroup向群组发送消息(见send_message.php)
 *
 * 本接口中写死了让所有用户加入101群组，101是随意定义的，你也可以定义成其它的值如 123、abc，
 * 如果你的现有系统有群组数据，可以使用你的群组数据。
 * 注意：加入的群组必须在init.php返回的json中有定义
 *
 */
use Lib\Db;

require_once __DIR__ . '/__init.php';
_session_start();

    $cook=$_GET['ADMININFO'];
    $cook = str_replace('.','-', $cook);
    $db = Db::instance('laychat');
    $res = $db->query("select * from `users` where username ='$cook'");
    if(!$res){
        //查询临时表user_laychat
        $res_new = $db->query("select * from `user_laychat` where username ='$cook'");
        if(!$res_new){
            $db->insert('user_laychat')->cols(array(
                'uid',
                'username',
                'sign',
                'avatar',
                'reg_timestamp',
                'status',
            ))->bindValues(array(
                'uid'=>$cook,
                'username'=>$cook,
                'sign'=>'用户',
                'avatar'=>AVATAR_USER,
                'reg_timestamp'=>time(),
                'status'=>'online'
            ))->query();

        }

        $_SESSION['laychat']=array(
            'id'=>$cook,
            'username'=>$cook,
            'sign'=>'用户',
            'avatar'=>AVATAR_USER,
        );
    }else{
        $_SESSION['laychat']=array(
            'id'=>$cook,
            'username'=>$cook,
            'sign'=>'用户',
            'avatar'=>AVATAR_USER,
        );
    }




// 此session是在用户登录时设置的
if (!isset($_SESSION['laychat'])) {
    exit_json(array(
        'code'=> '400',
        'msg' => '请登录2',
    ));
}

// 要求post一个client_id
if (empty($_POST)) {
    exit_json(array(
        'code'=> '400',
        'msg' => '缺少参数',
    ));
}

// 放入临时变量方便使用
$laychat_session = $_SESSION['laychat'];
//print_r($laychat_session);exit;
// 用户id 用户名 个性签名 头像等信息
$id        = $laychat_session['id'];
$username  = $laychat_session['username'];
$sign      = $laychat_session['sign'];
$avatar    = $laychat_session['avatar'];

// 获得要绑定的client_id，每个client_id对应一个socket链接
$client_id = $_POST['client_id'];

// 将client_id与uid绑定，通过Gateway::sendToUid给这个uid发消息(在send_message.php中有调用)
Gateway::bindUid($client_id, $id);
// 给client_id设置Gateway的session，方便通过Gateway::getClientSessionsByGroup获得某个群组所有在线用户信息(id 名字 头像等)
Gateway::updateSession($client_id, $laychat_session);

$res_num = Gateway::getClientIdByUid($id);

$_SESSION['laychat']['client_id']  = $client_id;

// 通知所有客户端当前用户上线
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//$online_message = array(
//    'message_type' => 'online',
//    'id'           => $id
//);
//Gateway::sendToAll(json_encode($online_message));

$unread_message=0;
$unread_notice_count=0;
// 返回json数据
exit_json(array('code'=>0, 'unread_message' => $unread_message,'res_num'=>$res_num, 'unread_notice_count' => $unread_notice_count ? '新消息' : 0));